// 运行时配置

// 全局初始化数据配置，用于 Layout 用户信息和权限初始化
// 更多信息见文档：https://umijs.org/docs/api/runtime-config#getinitialstate
import { getAdminInfoApi, whoAmIApi } from '@/services/admin';
import { message } from 'antd';
import info from './assets/icon1.png';

const TOKEN = 'token';
export async function getInitialState() {
  let target = { name: '@umijs/maxhahah ', userInfo: {} };
  console.log(location.pathname, '这里');
  // 这个位置做路由鉴权
  // 读取token
  //
  const token = localStorage.getItem(TOKEN) || sessionStorage.getItem(TOKEN);
  console.log(token, '有没有');
  if (location.pathname === '/login') {
    // 要往登录页面跳转
    // 判断此时的token是否有效
    // 有效就不能跳
    if (token) {
      // 请求whoami 接口
      return whoAmIApi().then((res) => {
        console.log('请求whoami', res);
        if (res.msg === '登录过期，请重新登录') {
          // 过期 token不对
          //可以跳转
          return target;
        }
        // target.userInfo = res.data// 拿到userInfo;

        // target.name =target.userInfo.loginId
        message.warning('已经登录,无法跳转,请先退出登录');
        location.href = '/';
        return target;
      });
    }
  } else {
    // 要跳转内部页面
    // 判断token 没有token不能跳
    if (!token) {
      // 本地没有存token
      location.href = '/login';
      message.error('没有token');
      return target;
    }
    // 到这里有token
    // 验证token
    return whoAmIApi().then((res) => {
      if (res.msg === '登录过期，请重新登录') {
        // 过期 token不对
        // 不能去
        location.href = '/login';
        return target;
      }
      if (res.data) {
        // 有token 可以进
        console.log('到这里?');
        // console.log(res.data)
        return getAdminInfoApi(res.data._id).then((detail) => {
          target.avatar = detail.data.avatar;
          target.userInfo = detail.data;
          target.name = res.data.loginId;
          // console.log(target)
          // console.log('获取信息',detail);
          return target;
        });
        // console.log(target)
      }
    });
  }
}

// export const layout = () => {
//   return {
//     logo: 'https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg',
//     menu: {
//       locale: false,
//     },
//   };
// };
// initialState

export const request = {
  requestInterceptors: [
    function (config) {
      const token =
        localStorage.getItem(TOKEN) || sessionStorage.getItem(TOKEN);
      config.headers['Authorization'] = 'Bearer ' + token;
      return { ...config };
    },
  ],
};

export const layout = () => {
  return {
    iconfontUrl: '//at.alicdn.com/t/c/font_4280920_0b21skbyo22w.js',
    logo: info,
    menu: {
      locale: false,
    },
    logout: () => {
      // 删除本地存储中的token
      localStorage.removeItem(TOKEN);
      sessionStorage.removeItem(TOKEN);
      location.href = '/login';
    },
    title: 'CodeStation',
  };
};
